蟻本 2-5 二部グラフ判定
code: python
# 入力のつもり。esはよくある隣接リストで辺を表したもの。
N = 5
# n個の頂点の色を初期化。0:未着色、1:黒、-1:白
# 頂点vをcolor(1 or -1)で塗り、再帰的に矛盾がないか調べる。矛盾があればFalse
def dfs(v,color):
# 今いる点を着色
return False
if colorsto == 0 and not dfs(to, -color): return False
# 調べ終わったら矛盾がないのでTrue
return True
# 2部グラフならTrue, そうでなければFalse
def is_bipartite():
return dfs(0,1) # 頂点0を黒(1)で塗ってDFS開始
print(is_bipartite())
テーマ